{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 逻辑回归中添加多项式特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(666)\n",
    "X = np.random.normal(0, 1, size=(200, 2))\n",
    "y = np.array((X[:,0]**2+X[:,1]**2)<1.5, dtype='int')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10418bda0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X[y==0,0], X[y==0,1])\n",
    "plt.scatter(X[y==1,0], X[y==1,1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用逻辑回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from playML.LogisticRegression import LogisticRegression"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegression()"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "log_reg = LogisticRegression()\n",
    "log_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.60499999999999998"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "log_reg.score(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_decision_boundary(model, axis):\n",
    "    \n",
    "    x0, x1 = np.meshgrid(\n",
    "        np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),\n",
    "        np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),\n",
    "    )\n",
    "    X_new = np.c_[x0.ravel(), x1.ravel()]\n",
    "\n",
    "    y_predict = model.predict(X_new)\n",
    "    zz = y_predict.reshape(x0.shape)\n",
    "\n",
    "    from matplotlib.colors import ListedColormap\n",
    "    custom_cmap = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])\n",
    "    \n",
    "    plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10d690860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_boundary(log_reg, axis=[-4, 4, -4, 4])\n",
    "plt.scatter(X[y==0,0], X[y==0,1])\n",
    "plt.scatter(X[y==1,0], X[y==1,1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "def PolynomialLogisticRegression(degree):\n",
    "    return Pipeline([\n",
    "        ('poly', PolynomialFeatures(degree=degree)),\n",
    "        ('std_scaler', StandardScaler()),\n",
    "        ('log_reg', LogisticRegression())\n",
    "    ])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('poly', PolynomialFeatures(degree=2, include_bias=True, interaction_only=False)), ('std_scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('log_reg', LogisticRegression())])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly_log_reg = PolynomialLogisticRegression(degree=2)\n",
    "poly_log_reg.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.94999999999999996"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly_log_reg.score(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112b8cef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_boundary(poly_log_reg, axis=[-4, 4, -4, 4])\n",
    "plt.scatter(X[y==0,0], X[y==0,1])\n",
    "plt.scatter(X[y==1,0], X[y==1,1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('poly', PolynomialFeatures(degree=20, include_bias=True, interaction_only=False)), ('std_scaler', StandardScaler(copy=True, with_mean=True, with_std=True)), ('log_reg', LogisticRegression())])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly_log_reg2 = PolynomialLogisticRegression(degree=20)\n",
    "poly_log_reg2.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n+P/Tp4Vk8FFSqwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x118dd5ef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_decision_boundary(poly_log_reg2, axis=[-4, 4, -4, 4])\n",
    "plt.scatter(X[y==0,0], X[y==0,1])\n",
    "plt.scatter(X[y==1,0], X[y==1,1])\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
